/**
 * [1] 两数之和
 *
 * @format
 * @lc app=leetcode.cn id=1 lang=javascript
 */

// @lc code=start
/**
 * @param {number[]} nums
 * @param {number} target
 * @return {number[]}
 */

// 哈希表法
// var twoSum = function (nums, target) {
//     const dict = {}
//     for (let i = 0; i < nums.length; i++) {
//         if (dict[nums[i]] !== undefined) {
//             return [dict[nums[i]], i]
//         } else {
//             dict[target - nums[i]] = i
//         }
//     }
// }

// 双指针法：不合适，很愚蠢啊
// var twoSum = function (nums, target) {
//     const keys = {}
//     nums.forEach((elem, index) => {
//         keys[elem] = index
//     })
//     nums.sort((a, b) => a - b)
//     let [left, right] = [0, nums.length - 1]
//     while (left < right) {
//         if (nums[left] + nums[right] == target) {
//             return [keys[nums[left]], keys[nums[right]]]
//         } else if (nums[left] + nums[right] < target) {
//             left++
//         } else {
//             right--
//         }
//     }
// }
debugger
console.log(twoSum([3, 2, 4], 6))
// @lc code=end
